From dc8adcda0e06aa0c3d650ea8df81667113ecb08e Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Wed, 5 Aug 2020 23:51:50 +0200 Subject: [PATCH] gtkgesture: ::cancel if a claimed sequence goes denied The regular paths just emit ::end, which isn't the whole thing. This gives an opportunity to gestures that are stolen the sequence to clean themselves up. --- gtk/gtkgesture.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gtk/gtkgesture.c b/gtk/gtkgesture.c index 1a791d3339..544ef87bd3 100644 --- a/gtk/gtkgesture.c +++ b/gtk/gtkgesture.c @@ -1014,6 +1014,10 @@ gtk_gesture_set_sequence_state (GtkGesture *gesture, data->state != GTK_EVENT_SEQUENCE_NONE) return FALSE; + if (state == GTK_EVENT_SEQUENCE_DENIED && + data->state == GTK_EVENT_SEQUENCE_CLAIMED) + _gtk_gesture_cancel_sequence (gesture, sequence); + data->state = state; gtk_widget_cancel_event_sequence (gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (gesture)), gesture, sequence, state); -- 2.30.2